Network applications have placed greater demands on network servers. These demands include greater reliability, increased capacity, and the ability to easily scale to meet increasing demand. For example, Internet Service Providers (ISPs) require server networks which are scalable and highly fault tolerant.
One popular method of meeting reliability and scalability requirements is to construct server farms where several servers are combined to function as a single unit. FIG. 1 is a block diagram illustrating a prior art approach to combining multiple servers. In this example, six servers, S1–S6, are combined into a server farm. All servers S1–S6 are then connected to a shared switch 100.
Implementing such a server farm requires additional equipment. FIG. 2 is a block diagram illustrating a prior art server farm architecture. In this example, servers S1–S6 are combined and connected to switch 200. The switch 200 is then connected to a router 202 through a load balancer 201. The router 202 is also connected to a modem pool 204 and external networks such as the Internet 203.
However, this approach has some drawbacks. First, the various pieces of equipment such as servers, switches, routers and modems all take up space. Since, in many applications space is at a premium, a small footprint is needed. Secondly, switches have a limited number of ports. Therefore, scalability is somewhat limited. In order to add servers beyond the number of ports available on a given switch, additional switches will be required. This in turn may require the addition of more load balancers and routers. Additionally, a switch creates a single point of failure. Failure of a switch will make all servers connected to it unavailable. Sometimes redundant switches are used to address this problem but this approach further complicates scalability. Finally, external connections between the devices in such an application are slower than internal connections within a single device.